<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.10/dist/vue.js"></script>
</head>

<body>
    <div id="app">
        <!-- 用 v-bind 处理它们：只需要通过表达式计算出字符串结果即可。
            不过，字符串拼接麻烦且易错。因此，在将 v-bind 用于 class 和 style 时，Vue.js 做了专门的增强。
            表达式结果的类型除了字符串之外，还可以是对象或数组。 -->

        <!-- 对象语法 -->
        <!-- active 这个 class 存在与否将取决于数据 property isActive 的 truthiness（即真值）  (键加不加引号都一样)-->
        <!-- CSS property 名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case，记得用引号括起来) 来命名： -->
        <div :style="{ color: activeColor, fontSize: fontSize + 'px' }">对象语法</div>
        <!-- 直接绑定到一个样式对象通常更好，这会让模板更清晰： (也可结合计算属性)-->
        <div :style="styleObject"></div>

        <!-- 数组语法 -->
        <!-- 数组语法可以将多个样式对象应用到同一个元素上： -->
        <div :style="[baseStyles, overridingStyles]"></div>

        <!-- 自动添加前缀 -->
        <!-- 当 v-bind:style 使用需要添加浏览器引擎前缀的 CSS property 时，如 transform，Vue.js 会自动侦测并添加相应的前缀。 -->

        <!-- 多重值 -->
        <!-- 从 2.3.0 起可为 style 绑定中的 property 提供一个包含多个值的数组，常用于提供多个带前缀的值，例如： -->
        <div :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>

    </div>

    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                activeColor: 'red',
                fontSize: 30,

                styleObject: {
                    color: 'red',
                    fontSize: '13px'
                }
            }
        })
    </script>
</body>

</html>